package dao;

import com.mongodb.client.MongoDatabase;
import entity.Device;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public interface MongoDBDao {
    /**
     * 创建Token
     * @param user
     * @return token
     */
    MongoDatabase connectMongoDB();
    /**
     * 创建Token
     * @return token
     */
    List<Object> findAll();
    /**
     * 创建Token
     * @param user
     * @return token
     */
    void insertDocument(Device device);
    /**
     * 更新设备信息集合
     * @param idStr,device
     */
    void updateDocument(String idStr,Device device);
    /**
     * 更新设备信息的idString字段
     * @param device
     */
    void updateDocumentIdStr(Device device);
    /**
     * 新增设备集合
     * @param device
     */
    void addDevice(Device device);
    /**
     * 修改设备信息
     * @param id,device
     * @return Device
     */
    Device modifyDevice(String id,Device device);
    /**
     * 删除设备信息
     * @param id
     */
    void deleteDevice(String id);
    /**
     * 删除设备的value字段信息
     * @param idStr
     */
    void deleteValue(String idStr);
    /**
     * 修改设备的value字段信息
     * @param device
     */
    void addDeviceValue(Device device);
    /**
     * 获取最后一条集合的ID值
     * @return String
     */
    String findIdInLast();
    /**
     * 通过设备名字获取设备信息集合
     * @param devicename
     * @return List<Object>
     */
    List<Object> findOneInDeviceName(String devicename);
}
